package chapter04.s05polymorphic.example16;

// 子类类型指向父类时需要强制转换

// 定义类Anmal
class Animal {
    public void shout() {
        System.out.println("喵喵……");
    }
}

// Dog类
class Dog extends Animal {
    // 重写shout()方法
    public void shout() {
        System.out.println("汪汪……");
    }

    public void eat() {
        System.out.println("吃骨头……");
    }
}

// 定义测试类
public class Example16 {
    public static void main(String[] args) {
        Animal an = new Dog();  // 父类类型指向子类对象

        // 子类类型指向父类时需要强制转换
        // 子类类型 子类对象 = （子类）父类对象;
        // 理解： 动物不一定是狗
        Dog dog = (Dog) an;
        dog.shout();
        dog.eat();
    }
}
